package cn.epsilon3.service;

import cn.epsilon3.domain.e3.dto.add.E3ResourceAdd;
import cn.epsilon3.domain.e3.dto.query.E3ResourceQuery;
import cn.epsilon3.domain.e3.dto.update.E3ResourceUpdate;
import cn.epsilon3.domain.e3.vo.E3ResourceVO;

import java.util.List;

/**
 * 菜单资源(E3ResourcePO)表服务接口
 *
 * @author makejava
 * @since 2023-11-12 21:49:57
 */
public interface E3ResourceService {


    /**
     * 查询角色对应的资源树
     *
     * @param roleId 角色id
     * @return 可达资源反参
     */
    List<E3ResourceVO> queryRoleResource(String roleId);

    /**
     * 条件查询资源
     *
     * @param resourceQuery 查询条件
     * @return 资源树
     */
    List<E3ResourceVO> list(E3ResourceQuery resourceQuery);

    /**
     * 新增资源
     *
     * @param resourceAdd 新增资源数据
     */
    void add(E3ResourceAdd resourceAdd);

    /**
     * 修改资源
     *
     * @param resourceUpdate 修改资源数据
     */
    void update(E3ResourceUpdate resourceUpdate);

    /**
     * 删除资源
     *
     * @param resourceId 资源id
     */
    void delete(String resourceId);
}
